在半监督节点分类任务中,我们需要学习带标签的样本,然后对未标记样本进行预测。为更好地对节点进行分类,基于拉普拉斯平滑性假设(Laplacian smoothing assumption
),人们提出了消息传递模型来聚合节点邻域的信息从而获得足够的事实(fact
)来对未标记节点产生更可靠的预测。
通常有两种实现消息传递模型的实用方法:
图神经网络 (Graph Neural Network:GNN
):通过神经网络执行特征传播 (feature propagation
)以进行预测。
标签传播算法( Label Propagation Algorithm:LPA
):跨 graph adjacency matrix
的标签传播(label propagation
)来进行预测。
由于 GNN
和 LPA
基于相同的假设:通过消息传播进行半监督分类。因此有一种直觉认为:将它们一起使用可以提高半监督分类的性能。已有一些优秀的研究提出了基于该想法的图模型。例如,APPNP
和 TPN
通过将 GNN
和 LPA
拼接在一起,GCN-LPA
使用 LPA
来正则化 GCN
模型。但是,如下表所示,上述方法仍然无法将 GNN
和 LPA
共同融入消息传递模型,从而在训练和预测过程中同时传播特征和标签。
为了统一特征传播和标签传播,主要有两个问题需要解决:
聚合特征信息和标签信息:由于节点特征是由embedding
表达的,而节点标签是一个 one-hot
向量。它们不在同一个向量空间中。
此外,它们的信息传递方式也不同:GNN
可以通过不同的神经网络架构来传播信息,如GraphSAGE
、GCN
和 GAT
;但是 LPA
只能通过图邻接矩阵来传递标签信息。
监督训练:用特征传播和标签传播进行监督训练的模型不可避免地会在 self-loop
标签信息中出现过拟合,这使得在训练时出现标签泄漏(label leakage
),导致预测的性能不佳。
受NLP
发展的启发,论文《Masked label prediction: unified message passing model for semi-supervised classification》
提出了一个新的统一消息传递模型(Unified Message Passing: UniMP
),并且使用带 masked label prediction
的 UniMP
来解决上述问题。UniMP
模型可以通过一个共享的消息传递网络将特征传播和标签传播,从而在半监督分类中提供更好的性能。
UniMP
是一个多层的 Graph Transformer
,它使用 label embedding
来将节点标签转换为和节点特征相同的向量空间。
一方面,UniMP
像之前的 attention-based GNN
一样传播节点特征;另一方面,UniMP
将multi-head attention
视为转移矩阵从而用于传播 label vector
。因此,每个节点都可以聚合邻域的特征信息和标签信息。
即,
label vector
的转移矩阵来自于attention
,而不是来自于图的邻接矩阵。
为了监督训练 UniMP
模型而又不过拟合于self-loop
标签信息,论文从 BERT
中的 masked word prediction
中吸取经验,并提出了一种 masked label prediction
策略。该策略随机mask
某些训练样本的标签信息,然后对其进行预测。这种训练方法完美地模拟了图中标签信息从有标签的样本到无标签的样本的转移过程。
论文在 Open Graph Benchmark:OGB
数据集上对三个半监督分类数据集进行实验,从而证明了 UniMP
获得了 SOTA
半监督分类结果。论文还对具有不同输入的模型进行了消融研究,以证明 UniMP
方法的有效性。此外,论文还对标签传播如何提高 UniMP
模型的性能进行了最彻底的分析。
定义图
每个节点
每条边
每个节点 one-hot
表示为 one-hot
构成标签矩阵
实际上在半监督节点分类任务中,大部分节点的标签是未知的。因此我们定义初始标签矩阵 one-hot
标签向量或者全零向量组成:对于标记节点,它就是标签的 one-hot
向量;对于未标记节点,它就是全零的向量。
图的邻接矩阵定义为 degree
。
归一化的邻接矩阵定义为
特征传播(Feature Propagation
)模型:在半监督节点分类中,基于拉普拉斯平滑假设,GNN
将节点特征
GNN
的特征传播范式为:在第
其中:
representation
矩阵,
final embedding
矩阵
标签传播(Label Propagation
)模型:LPA
假定相连节点之间的标签是平滑的,并在整个图上迭代传播标签。
LPA
的特征传播范式为:在第
其中
在 LPA
中,标签信息通过归一化的邻接矩阵
UniMP
整体架构如下图所示。我们采用了 Graph Transformer
并结合使用label embedding
来构建 UniMP
模型,从而将上述特征传播和标签传播结合在一起。
Graph Transformer
:由于 Transformer
已经在 NLP
中被证明功能强大,因此我们将常规的 multi-head attention
应用到 graph learning
中。
给定节点representation
集合 multi-head attention
:
其中:
head
的隐层大小。
head attention
。
我们首先将 source feature
query
向量 distant feature
key
向量 edge feature
key
向量作为额外的信息。编码过程中使用了可训练的参数
edge feature
跨层共享。在计算注意力系数时,edge feature
作为key
的附加信息。
当得到 graph multi-head attention
,我们聚合节点
注:这里的公式和上面的架构图不匹配。根据公式中的描述,残差应该连接在
Graph Transformer
层之后。即:残差连接 ->LayerNorm
->ReLU
。
其中:
节点embedding
value
向量考虑了和 。
和特征传播相比,multi-head attention
矩阵代替了原始的归一化邻接矩阵作为消息传递的转移矩阵(类似于 GAT
)。另外,我们提出一个层间的门控残差连接(gated residual connection
)来防止过度平滑(oversmoothing
)。
门控机制由
所提供,它因节点的不同而不同、因层深(即 )的不同而不同。
类似于 GAT
,如果我们在输出层应用 Graph Transformer
,则我们对multi-head output
应用均值池化(并且没有 LayerNorm
和 relu
):
Label Embedding and Propagation
:我们提出将部分观测到的标签信息 embed
到节点特征相同的空间中:label embedding
向量和未标记节点的零向量。
然后,我们通过简单地将节点特征和标签特征相加得到传播特征( propagation feature
):
我们可以证明,通过将部分标记的
证明:令 Graph Transformer
中的attention
矩阵(即 edge feature
,并且 bias
向量。那么我们有:
其中 APPNP
中预定义的超参数。
为简单起见,我们取
其中
因此我们发现 UniMP
模型可以近似分解为特征传播
已有的GNN
相关工作很少考虑在训练和推断阶段都使用部分观测的标签。大多数工作仅将这些标签信息作为 ground truth target
,从而监督训练模型参数
其中
但是,我们的 UniMP
模型会传播节点特征和标签信息从而进行预测:inference
性能很差。
我们向BERT
学习,它可以 mask
输入的 word
并预测被 masked
的word
从而预训练BERT
模型。有鉴于此,我们提出了一种 masked label prediction
策略来训练我们的模型。训练过程中,在每个iteration
,我们随机屏蔽部分节点标签为零并保留剩余节点标签,从而将 label_rate
所控制(label_rate
表示保留的标签比例)。
假设被 masked
之后的标签矩阵为
其中: masked
标签的节点数量,masked
标签。
每个
batch
内的target
节点的label
都是被屏蔽掉的。否则的话,对target
节点预测标签会发生标签泄漏。
通过这种方式,我们可以训练我们的模型从而不会泄露self-loop
标签信息。
这篇论文就是一篇水文,其思想就是把
node label
作为一个节点特征拼接到原始节点特征上去(当然,目标节点拼接全零信息而不是node label
从而防止信息泄露),然后在所有输入的特征上执行随机mask
。
在推断过程中,我们可以将所有
数据集:和实际工程应用的图相比,大多数论文常用的图数据集规模很小。GNN
在这些论文数据集上的性能通常不稳定,因为数据集太小、不可忽略的重复率或泄露率、不切实际的数据切分等。
最近发布的 OGB
数据集克服了常用数据集的主要缺点,它规模更大、更有挑战性。OGB
数据集涵盖了各种现实应用,并覆盖了多个重要领域,从社交网络、信息网络到生物网络、分子图、知识图谱。它还覆盖了各种预测任务,包括node-level
预测、graph-level
预测、edge-level
预测。
因此我们在该数据集上进行实验,并将 UniMP
和 SOTA
模型进行比较。如下表所示,我们对三个 OGBN
数据集进行实验,它们是具有不同大小的不同任务。其中包括:
ogbn-products
:关于 47
种产品类别的分类(多分类问题),其中每个产品给出了 100
维的节点特征。
ogbn-proteins
:关于 112
种蛋白质功能的分类(多标签二分类问题),其中每条边并给出了 8
维的边特征。
ogbn-arxiv
:关于 40
种文章主题的分类(多分类问题),其中每篇文章给出了 128
维的节点特征。
实现细节:
这些数据集大小或任务各不相同,因此我们使用不同的抽样方法对模型进行评估。
在 ogbn-products
数据集中,我们在训练期间每一层使用 size=10
的 NeighborSampling
来采样子图,并在推断期间使用 full-batch
。
在 ogbn-proteins
数据集中,我们使用随机分区(Random Partition
)将稠密图拆分为子图,从而训练和测试我们的模型。训练数据的分区数为 9
、测试数据的分区数为 5
。
在小型的 ogbn-arxiv
数据集中,我们对训练数据和测试数据进行full batch
处理。
我们为每个数据集设置了模型的超参数,如下表所示。label rate
表示我们在应用 masked label prediction
策略期间保留的标签比例。
我们使用 lr=0.001
的Adam
优化器来训练模型。此外,我们在小型 ogbn-arxiv
数据集中将模型的权重衰减设置为 0.0005
来缓解过拟合。
所有的模型都通过 PGL
以及 PaddlePaddle
来实现,并且所有实验均在单个 NVIDIA V100 32 GB
上实现。
实验结果:baseline
方法和其它SOTA
方法均由 OGB
排行榜给出。其中一些结果是原始作者根据原始论文官方提供,其它结果由社区重新实现的。并且所有这些结果都保证可以用开源代码复现。
按照 OGB
的要求,我们对每个数据集运行 10
次实验结果,并报告均值和标准差。如下表所示,我们的 UniMP
模型在三个 OGBN
数据集上都超过所有其它模型。由于大多数模型仅考虑基于特征传播来优化模型,因此结果表明:将标签传播纳入 GNN
模型可以带来重大改进。
具体而言:
UniMP
在 gbn-products
中获得了 82.56%
的测试准确率,相比 SOTA
取得了 1.6%
的绝对提升。
UniMP
在 gbn-proteins
中获得了 86.42%
的测试 ROC-AUC
,相比 SOTA
取得了 0.6%
的绝对提升。
UniMP
在 gbn-arxiv
中获得了 73.11%
的测试准确率,相比 SOTA
实现了0.37%
的绝对提升。
作者没有消融研究:
不同
label_rate
对于模型性能的变化(当label_rate = 0
时表示移除标签传播)。除了
Graph Transformer
之外,UniMap
采用其它base model
的效果是否也很好。